/**
 * 工位管理API
 */
import { get, post } from '@/utils/request'

/**
 * 模糊搜索工位名称
 * @param {string} keyword - 搜索关键词
 * @param {number} limit - 返回数量限制
 * @returns {Promise<object>} 搜索结果
 */
export function searchWorkstations(keyword, limit = 10) {
  return get('/workstations/search', { keyword, limit })
}

/**
 * 获取本地工位列表
 * @param {string} status - 工位状态筛选 (可选)
 * @returns {Promise<object>} 工位列表
 */
export function getWorkstations(status = null) {
  const params = status ? { status } : {}
  return get('/workstations', params)
}

/**
 * 获取工位详情
 * @param {number} id - 工位ID
 * @returns {Promise<object>} 工位详情
 */
export function getWorkstationDetail(id) {
  return get(`/workstations/${id}`)
}

/**
 * 同步工位信息
 * @param {string} name - 工位名称
 * @returns {Promise<object>} 同步结果
 */
export function syncWorkstation(name) {
  return post('/workstations/sync', { name })
}

/**
 * 执行工位操作
 * @param {number} id - 工位ID
 * @param {string} action - 操作类型 (start/pause/stop/reset)
 * @param {object} parameters - 操作参数 (可选)
 * @returns {Promise<object>} 操作结果
 */
export function executeWorkstationAction(id, action, parameters = null) {
  const data = { action }
  if (parameters) {
    data.parameters = parameters
  }
  return post(`/workstations/${id}/action`, data)
}

/**
 * 上传工位操作历史
 * @param {number} id - 工位ID
 * @param {array} actions - 操作历史数组
 * @returns {Promise<object>} 上传结果
 */
export function uploadActionHistory(id, actions) {
  return post(`/workstations/${id}/actions`, { actions })
}

/**
 * 获取工位操作历史
 * @param {number} id - 工位ID
 * @param {object} params - 查询参数 { start_time, end_time, page, page_size }
 * @returns {Promise<object>} 操作历史
 */
export function getActionHistory(id, params = {}) {
  return get(`/workstations/${id}/actions`, params)
}
